package de.schule.barnimgymnasium.autotransporter.spiele;

import java.io.IOException;
import java.net.URL;

import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;

import de.schule.barnimgymnasium.autotransporter.Lautsprecher;
import de.schule.barnimgymnasium.autotransporter.Stellplatz;
import de.schule.barnimgymnasium.autotransporter.Transporter;

public abstract class Spiel {

	boolean beenden = false;
	Transporter transporter;
	Lautsprecher lautsprecher;

	public Spiel(final Transporter transporter) {
		if (transporter == null || transporter.getLautsprecher() == null)
			throw new NullPointerException();
		this.transporter = transporter;
		this.lautsprecher = transporter.getLautsprecher();
		begruessen();
	}

	public abstract void stellplatzGeaendert(Stellplatz s);

	protected abstract void begruessen();

	public void stop() {
		this.beenden = true;
	}

	protected void say(String text) {
		lautsprecher.say(text);
	}

	protected void say(URL sound) throws IOException,
			UnsupportedAudioFileException, LineUnavailableException {
		lautsprecher.say(sound);
	}
}